﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SanguoSharp
{
    public interface IPlayerEventListener : IEventListener
    {
        /// <summary>
        /// Gets a value indicating wheter this listener implementation is an AI.
        /// </summary>
        bool IsAI { get; }
        /// <summary>
        /// Called when the player successfully joins a session.
        /// </summary>
        /// <param name="control">
        /// The <see cref="IPlayerSessionControl"/> instance for this player.
        /// </param>
        void OnJoinedSession(IPlayerSessionControl control);
        /// <summary>
        /// Called when the player successfully joins a game.
        /// </summary>
        /// <param name="control">
        /// The <see cref="IPlayerControl"/> instance for this player.
        /// </param>
        void OnJoinedGame(IPlayerControl control);

        /// <summary>
        /// Fired when the player is requested for an action.
        /// </summary>
        /// <param name="requestType">
        /// The new <see cref="RequestType"/>.
        /// </param>
        /// <param name="causedBy">
        /// The <see cref="IPublicPlayerView"/> of the player that caused the request.
        /// </param>
        void OnNewRequest(RequestType requestType, IPublicPlayerView causedBy);
    }
}
